In recent years, the resolutions of displays used as display devices of computers have been improved in accordance with advanced technology. For example, in notebook PCs, the conventional VGA (640×480 pixels) and SVGA (800×600 pixels) resolutions are replaced with XGA (1024×768 pixels) or higher resolutions, and generally desktop PCs have SXGA (1280×1024 pixels) or UXGA (1600×1200 pixels) resolutions. Further, it is conceivable that higher resolutions such as QXGA and QUXGA are supported in the future.
Further, an application program, which simultaneously displays a large number of image data obtained by image sensing using a digital camera or the like then selectively displays one of them, and displays more detailed image data by the display techniques such as zooming and scrolling, is known. In this case, upon simultaneous display of a large number of image data, as quickness is important, previously-generated thumbnail image data different from original image data are frequently employed. On the other hand, when one image data selected from the thumbnails is displayed, the original image data is employed. The entire image is displayed as long as the image can be displayed within a window size of the application or within the screen size of the display device. Then when the image is further enlarged, a part of the image is displayed.
When one image is displayed, such application program, which uses plural image sizes smaller than an original image data size, performs decoding processing in accordance with necessity to temporarily reproduce the image data in the original image size, then reduces the image data to a target image size. In this case, the image data is not compressed or compressed by a sequential coding scheme such as the JEPG baseline.
Otherwise, image data may be compressed by a hierarchical coding scheme, then decoded to a necessary image size and displayed. Such hierarchical coding scheme, the JPEG 2000 coding is known. The JPEG 2000 scheme is an image coding scheme standardized by ISO/ITC in 2001 to divide image data to one or more tiles and perform hierarchical coding with one or plural resolutions by tile. Further, as a protocol for access to only a necessary portion of JPEG 2000 encoded data file on a network, JEPG 2000 image coding system—Part 9: Interactivity tools, APIs and protocols (hereinbelow, abbreviated to “JPIP”) is currently formulated.
For example, according to Japanese Patent Application Laid-Open No. 2003-023630 (U.S. counterpart US2003/0018818A1, hereinbelow, Document 1), a compressed image file coded by the JPEG 2000 scheme is stored on a server, then a code stream is partially requested from a client, and is buffered. Regarding an unstored portion, a request is newly issued to the server, and the received encoded data and the already buffered encoded data are combined with each other, and the combined data is decoded. The above processing is repeated. The partial request is made in packet, tile or code block units in the JPEG 2000 code. Further, the request can be made in byte units. On the other hand, the server extracts a requested portion of compressed data and returns the data to the client.
Further, according to Japanese Patent Application Laid-Open No. 2004-040674 (hereinbelow, Document 2), a client requests JPEG 2000 encoded data from a server in sub-band units, and holds coefficients used upon decoding. When the client requests encoded data in a higher-layer sub-band, it performs decoding by adding the current data to the coefficients. Further, the client holds the coefficients used in the decoding. The above processing is repeated. In this system, it is not necessary to buffer received encoded data on the client side. This enables progressive display in a resolution direction.
For example, according to the Document 2, when a encoded data file “A.jk2” is obtained by encoding 2048×2048 pixel image data by the JPEG 2000 coding with decomposition level=5, six image data having different resolutions, 64×64 pixels, 128×128 pixels, 256×256 pixels, 512×512 pixels, 1024×1024 pixels, and 2048×2048 pixels, are reproduced from the file “A.j2k”. Further, upon selection and display from thumbnail images by an image decoding/display application program file “APP—1.exe”, the image size of display is 256×256 pixels.
Under such conditions, to display one image data selected by the application program “APP—1.exe”, decoding is performed on three encoded data having resolutions 64×64 pixels→128×128 pixels→256×256 pixels and a decoded image is displayed. That is, as the application “APP—1.exe” does not handle image data having resolutions lower than the 256×256 pixel resolution, when encoded data having resolutions lower than the 256×256 pixel size exist, a decoding loop is caused in the decoder until image data having a resolution equal to 256×256 pixels or higher is decoded. Accordingly, the decoding requires much time. Further, as encoded data having resolutions not handled by the application are stored in a buffer or the like, the storage area is wasted. Further, when encoded data is requested from a server by the JPIP protocol, time for communication is further required.
Further, according to the Document 2, as the decoding processing is stopped in the middle and coefficients used in the decoding processing are held, a larger memory capacity is required in comparison with the case of holding encoded data. Further, as the decoder is stopped in the middle and sub-band data is added, a specialized decoder is required.
Further, according to the Documents 1 and 2, a part of JPEG 2000 encoded data is transmitted from the server to a client without changing compression parameters and the received encoded data is decoded without any conversion on the client side. Accordingly, it is necessary to process even encoded data having resolutions unnecessary for the application on the client side. Further, when the number of resolution layers is larger than that supported on the decoder side, there is a probability that all the received encoded data cannot be decoded.